<template>
  <upload-excel :on-success="handleSuccess" />
</template>

<script>
import { formatExcelDate } from '@/utils'
import { importEmployeeByExcelAPI } from '@/api/employees'
export default {
  name: 'Excel',
  methods: {
    // 导入成功以后的回调函数
    async handleSuccess({ results, header }) {
    //   console.log(results)
    //   console.log(header)
      // 调用数据矫正函数进行矫正
      const data = this.changeExcelFn(results)
      console.log(data)
      //   注意最后是传数组格式
      const res = await importEmployeeByExcelAPI(data)
      console.log(res)
      if (res.success) {
        //   提示成功
        this.$message.success(res.message)
        // 跳转页面
        this.$router.push('/employees')
      }
    },

    // 修改矫正数据格式
    changeExcelFn(results) {
      //   功能:将results数组中的中文key换乘英文key
      //  1.映射关系
      const obj = {
        '入职日期': 'timeOfEntry',
        '手机号': 'mobile',
        '姓名': 'username',
        '转正日期': 'correctionTime',
        '工号': 'workNumber',
        '部门': 'departmentName',
        '聘用形式': 'formOfEmployment'
      }
      const newObj = {}
      // 2.遍历读出results数组,拿到每个中文key的对象
      results.forEach(item => {
        // 3. Object.keys(item)// 原地返回值['入职日期','姓名','工号','手机号','转正日期']
        const zhKeyArr = Object.keys(item)
        // 4. 遍历中文key字符串去obj遍历换成英文key
        zhKeyArr.forEach(zhKey => {
          const enKey = obj[zhKey]
          // 5. 难,自己新拼接一个对象,将  中文:值  赋给  英文:值
          if (enKey === 'timeOfEntry' || enKey === 'correctionTime') {
            //   用formatExcelDate函数转换一下时间格式 由天数==>年/月/日
            newObj[enKey] = formatExcelDate(item[zhKey])
          } else {
            newObj[enKey] = item[zhKey]
          }
        })
      })
      // 遍历结束
      return [newObj]
    }
  }
}
</script>

<style lang="scss" scoped></style>
